﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IOPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            ////获取 D 盘中的驱动器类型、名称、文件系统名称、可用空间以及总空间大小。
            //Console.WriteLine("获取 D 盘中的驱动器类型、名称、文件系统名称、可用空间以及总空间大小。");
            //DriveInfo driveInfo = new DriveInfo("C");

            //Console.WriteLine("驱动器上的可用空闲空间量:"+driveInfo.AvailableFreeSpace);//获取驱动器上的可用空闲空间量

            //Console.WriteLine("文件系统格式的名称:"+driveInfo.DriveFormat);//获取文件系统格式的名称

            //Console.WriteLine("驱动器的类型:"+driveInfo.DriveType);//获取驱动器的类型

            //Console.WriteLine("一个指示驱动器是否已准备好的值:"+driveInfo.IsReady); //获取一个指示驱动器是否已准备好的值

            //Console.WriteLine("驱动器的名称:"+driveInfo.Name);//驱动器的名称

            //Console.WriteLine("获取驱动器的根目录:"+driveInfo.RootDirectory);//获取驱动器的根目录

            //Console.WriteLine("获取驱动器上的可用空闲空间总量:"+driveInfo.TotalFreeSpace); //获取驱动器上的可用空闲空间总量

            //Console.WriteLine("获取驱动器上存储空间的总大小:"+driveInfo.TotalSize);//获取驱动器上存储空间的总大小

            //Console.WriteLine("获取或设置驱动器的卷标:"+driveInfo.VolumeLabel);//获取或设置驱动器的卷标

            //Console.WriteLine();

            ////使用 GetDrives 方法获取所有驱动器
            //Console.WriteLine("使用 GetDrives 方法获取所有驱动器");
            //DriveInfo[] drive = DriveInfo.GetDrives();
            //foreach(DriveInfo d in drive)
            //{
            //    if (d.IsReady)
            //    {
            //        Console.WriteLine("名称："+d.Name);
            //        Console.WriteLine("驱动器文件格式:"+d.DriveFormat);
            //    }
            //}


            //Console.WriteLine();
            ////在 D 盘下创建文件夹 code，并在该文件夹中创建 code-1和 code-2 两个子文件夹。
            //DirectoryInfo directoryInfo = new DirectoryInfo("C:\\code");
            //directoryInfo.Create();
            //directoryInfo.CreateSubdirectory("code-1");
            //directoryInfo.CreateSubdirectory("code-2");

            //Console.WriteLine();
            ////查看 D 盘下 code 文件夹中的文件夹。
            //DirectoryInfo directoryInfo1 = new DirectoryInfo("C:\\code");
            //IEnumerable<DirectoryInfo> dir = directoryInfo1.EnumerateDirectories();
            //foreach(var q in dir)
            //{
            //    Console.WriteLine(q.Name);
            //}

            ////将 code 文件夹及其含有的子文件夹删除。
            //DirectoryInfo directoryInfo2 = new DirectoryInfo("C:\\code");
            //directoryInfo2.Delete(true);

            //Console.WriteLine();
            ////使用 Directory 类在 D 盘上操作 code 文件夹，要求先判断是否存在该文件夹，如果存在则删除，否则创建该文件夹。
            //bool flag = Directory.Exists("C:\\code");
            //if (flag)
            //{
            //    Directory.Delete("C:\\code",true);
            //}
            //else
            //{
            //    Directory.CreateDirectory("C:\\code");
            //}

            Directory.CreateDirectory("C:\\code");
            FileInfo fileInfo = new FileInfo("C:\\code\\test1.txt");
            if (!fileInfo.Exists)
            {
                fileInfo.Create();
            }

            //将文件移动到code - 1文件夹下
            //Directory.CreateDirectory("C:\\code-1");

            //FileInfo newfileinfo = new FileInfo("C:\\code-1\\tes1.txt");
            //if (!newfileinfo.Exists)
            //{
            //    fileInfo.MoveTo("C:\\code-1\\test1.txt");
            //}
            Console.WriteLine("文件创建时间："+File.GetCreationTime("C:\\code-1"));
            Console.WriteLine("文件最后被写入时间:"+File.GetLastWriteTime("C:\\code-1"));
        }
    }
}
